/*
* @Author: ylq
 * @Date: 2021-08-25 10:54:48
 * @Desc: config
 * @Last Modified by: ylq
 * @Last Modified time: 2022-08-10 16:47:58
 */
const path = require('path');

const UglifyJsPlugin = require('uglifyjs-webpack-plugin')

let api = process.env.api
// let sso = process.env.sso || 'http://sso.xiaolutg.com';
// let client = process.env.client
// let ossUrl = process.env.ossUrl
console.log(1,process.env.NODE_ENV,process.env.api)
// console.log(2,process.env.NODE_ENV,process.env.sso)
// console.log(3,process.env.NODE_ENV,process.env.client)
// console.log(4,process.env.NODE_ENV,process.env.ossUrl)
module.exports = {
  // publicPath: (test === undefined && process.env.NODE_ENV === 'production') ? 'https://static.xltg.link/test-editor/' : '/',
  //publicPath: process.env.NODE_ENV === 'production' ? ossUrl : '/',
   publicPath: process.env.NODE_ENV === 'production' ? '/' : '/',

  /**
   * 如果你不需要生产环境的 source map，可以将其设置为 false 以加速生产环境构建。
   *  打包之后发现map文件过大，项目文件体积很大，设置为false就可以不输出map文件
   *  map文件的作用在于：项目打包后，代码都是经过压缩加密的，如果运行时报错，输出的错误信息无法准确得知是哪里的代码报错。
   *  有了map就可以像未加密的代码一样，准确的输出是哪一行哪一列有错。
   * */
  // 生产环境 不需要生成sourceMap
  productionSourceMap: false,

  // 用于放置生成的静态资源 (js、css、img、fonts) 的；（项目打包之后，静态资源会放在这个文件夹下）
  assetsDir: 'assets',

  // 默认情况下，生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存。你可以通过将这个选项设为 false 来关闭文件名哈希。(false的时候就是让原来的文件名不改变)
  // filenameHashing: false,
  devServer: {
    compress: true,
    host: '0.0.0.0',
    disableHostCheck: true,
    // open: true,
    port: 3000,
    // 配置跨域处理,只有一个代理
    // proxy: 'http://localhost:4000' 
    // 配置多个代理
    proxy: {
      // '/api/sso': {
      //   target: sso,
      //   ws: true,
      //   changeOrigin: true,
      //   pathRewrite:{
      //     '^/api/sso': '/'
      //   },
      // },
      // '/api/client': {
      //   target: client,
      //   ws: true,
      //   changeOrigin: true,
      //   pathRewrite:{
      //     '^/api/client': '/'
      //   },
      // },
      '/api': {
        target: api,
        ws: true,
        changeOrigin: true,
        // headers: {
        //   Referer: api
        // },
        pathRewrite:{
          '^/api': '/'
        },
      },
    }
  },

  configureWebpack:{
    optimization: {
      minimizer: [
        new UglifyJsPlugin({
          uglifyOptions: {
            warnings: false,
            compress: {
              drop_console: true,//console
              drop_debugger: false,
              pure_funcs: ['console.log']//移除console
            }
          },
        })
      ],
      splitChunks: {
        // include all types of chunks
        chunks: 'all',
      },
    }
  },

  transpileDependencies: [
  ],

  pluginOptions: {
    'style-resources-loader': {
      preProcessor: 'less',
      patterns: [
        path.resolve(__dirname, './src/assets/style/base.less')
      ]
    }
  }
}
